package persistence;

/**
 * An Abstract Factory for data persistence
 * @author Sabrina
 */
public interface DataPersistenceFactory 
{
	/**
	 * gets the ItemDAO for the given factory
	 * 
	 * @return the ItemDAO
	 */
	abstract ItemDAO getItemDAO();
	
	/**
	 * Gets the ProductDAO for the given factory
	 * @return the ProductDAO
	 */
	abstract ProductDAO getProductDAO();
	
	/**
	 * Gets the ContainerDAO for the given factory
	 * @return the ContainerDAO
	 */
	abstract ContainerDAO getContainerDAO();
	
	/**
	 * Gets the ProductContainerDAO for the given factory
	 * @return the ProductContainerDAO
	 */
	abstract ProductContainerDAO getProductContainerDAO();
	
	/**
	 * Gets the AllDAO for the given factory
	 * @return the AllDAO
	 */
	abstract AllDAO getAllDAO();
	
	/**
	 * Gets the ReportDAO for the given factory
	 * @return the ReportDAO
	 */
	abstract ReportDAO getReportDAO();
	
	/**
	 * Gets the TransactionManager for the given factory
	 * @return the TransactionManager
	 */
	abstract TransactionManager getTransactionManager();
}
